package demo.game.chess.client.ui;

import demo.game.chess.common.AbstractChessPiece;
import demo.game.chess.common.ChessMove;

/**
 * Listen to the move confirmation events.
 * The implementation of this interface can send
 * a message to the remote server 
 * or to a computer AI system to play its turn.
 * 
 * @author Prawee Sriplakich
 *
 */
public interface IChessMoveListener {

	void afterUndoMove(AbstractChessUI abstractChessUI);

	void afterConfirmMove(AbstractChessUI chessUI,
			AbstractChessPiece movingPiece, ChessMove move);

	void beforeUndoMove(AbstractChessUI abstractChessUI);

	void beforeConfirmMove(AbstractChessUI chessUI,
			AbstractChessPiece movingPiece, ChessMove move);
}
